package com.shaoshaohuo.app.view.citymenu;

import com.shaoshaohuo.app.view.citymenu.entity.Area;

import java.util.ArrayList;
import java.util.List;

/**
 * 动态处理省、市、区县列表里面的变化项，如“全国-全国-全国”、“河北省-河北省-河北省”、“河北省-衡水市-衡水市”，
 * 影响第二级，添加了全国、省；
 * 影响第三级，添加了全国、省、市；
 *
 * 处理逻辑：
 * 1、AreaList, 当前要更新的list
 * 2、InsertedArea, 要动态添加的Area
 *
 * Created by YinSF on 16/1/7.
 */
public class CityMenuDecorator {
    public static final String LEVEL_ONE = "1";
    public static final String LEVEL_TWO = "2";
    public static final String LEVEL_THIRD = "3";

    private List<Area> wholeCountList = new ArrayList<Area>();

    public CityMenuDecorator() {
        wholeCountList.add(getWholeCountry());
    }

    public List<Area> getWholeCountList() {
        return wholeCountList;
    }

    public void setWholeCountList(List<Area> wholeCountList) {
        this.wholeCountList = wholeCountList;
    }

    /**
     * 获取全国对象
     * @return
     */
    public Area getWholeCountry() {
        Area area = new Area();
        area.setLevelType(LEVEL_ONE);
        area.setName("全国");
        return area;
    }

//    /**
//     * 在targetList，的开始位置添加 newTempArea
//     * @param targetList    当前要更新的list
//     * @param upLevelList   上级List, 要添加的Area，是其第一个
//     * @return  返回添加了动态Area的List
//     */
//    public List<Area> decorateAreaList(String currentLevel, int firstPosition, int secondPosition, List<Area> targetList, List<Area> upLevelList) {
//        targetList.add(0, upLevelList.get(position));
//        return targetList;
//    }
    /**
     * 在targetList，的开始位置添加 newTempArea
     * @param targetList    当前要更新的list
     * @return  返回添加了动态Area的List
     */
    public List<Area> decorateAreaList(List<Area> targetList) {
        targetList.add(0, getWholeCountry());
        return targetList;
    }

    public List<Area> decorateAreaList(Area newTempArea) {
        List<Area> list = new ArrayList<Area>();
        list.add(newTempArea);
        return list;
    }
    /**
     * 在targetList，的开始位置添加 newTempArea
     * @param targetList    当前要更新的list
     * @param newArea       新添加
     * @return  返回添加了动态Area的List
     */
    public List<Area> decorateAreaList(List<Area> targetList, Area newArea) {
        targetList.add(0, newArea);
        return targetList;
    }
}
